<?php
class lib_users extends spModel
{
  var $pk = "uid"; 
  var $table = "users"; 

// 这个是新建用户的验证规则
var $verifier_new = array(
	"rules" => array( // 规则
		'name' => array( 
			'notnull' => TRUE, 
			'minlength' => 2, 
			'maxlength' => 15, 
		),
		'password' => array(  
			'notnull' => TRUE, 
			'minlength' => 6, 
			'maxlength' => 30,
		),
		'phone' => array( 
			'notnull' => TRUE, 
			'minlength' => 7, 
			'maxlength' => 15, 
		),
		'mail' => array(  
			'notnull' => TRUE,
			'email' => TRUE,  
			'minlength' => 6, 
			'maxlength' => 30,
		),
		'nickName' => array(  
			'notnull' => TRUE,
			'minlength' => 2, 
			'maxlength' => 30,
		),
	),
	"messages" => array( // 提示消息，从上面的rules复制下来，很快捷。
		'name' => array(  
			'notnull' => "用户名不能为空", 
			'minlength' => "用户名长度不能少于2个字符",  
			'maxlength' => "用户名长度不能大于15个字符",
		),
		'password' => array(  
			'notnull' => "密码不能为空", 
			'minlength' => "密码长度不能少于6个字符",  
			'maxlength' => "密码长度不能大于30个字符", 
		),
		'phone' => array( 
			'notnull' => "电话不能为空", 
			'minlength' => "电话长度不能少于7个字符",  
			'maxlength' => "电话长度不能大于15个字符",
		),
		'mail' => array(   
			'notnull' => "电子邮件不能为空",
			'email' => "电子邮件格式不正确",  
			'minlength' => "电子邮件长度不能少于6个字符",  
			'maxlength' => "电子邮件长度不能大于30个字符", 
		),
		'nickName' => array(   
			'notnull' => "昵称不能为空",
			'minlength' => "昵称长度不能少于2个字符",  
			'maxlength' => "昵称长度不能大于30个字符", 
		),
	),
);

 // 这是登录的验证
var $verifier_login = array(
	"rules" => array( 
		'name' => array( 
			'notnull' => TRUE,
			'minlength' => 2, 
			'maxlength' => 15,
		),
		'password' => array( 
			'notnull' => TRUE, 
			'minlength' => 6,  
			'maxlength' => 30, 
		),
	),
	"messages" => array( // 提示消息，从上面的rules复制下来，很快捷。
		'name' => array(  
			'notnull' => "用户名不能为空", 
			'minlength' => "用户名长度不能少于2个字符",  
			'maxlength' => "用户名长度不能大于15个字符",
		),
		'password' => array(  
			'notnull' => "密码不能为空", 
			'minlength' => "密码长度不能少于6个字符",  
			'maxlength' => "密码长度不能大于30个字符", 
		),
	),
);
  
  	/**
	 * 这里我们建立一个成员函数来进行用户登录验证
	 *
	 * @param name    用户名
	 * @param password    密码，请注意，本例中使用了加密输入框，所以这里的$password是经过MD5加密的字符串。
	 */
	public function userlogin($name, $password){ 
		$conditions = array(
			'name' => $name,
			'password' => $password, // 请注意，本例中使用了加密输入框，所以这里的$password是经过MD5加密的字符串。
		);
		// dump($conditions);
		// 检查用户名/密码，由于$conditions是数组，所以SP会自动过滤SQL攻击字符以保证数据库安全。
		if( $result = $this->find($conditions) ){ 
			// 成功通过验证，下面开始对用户的权限进行会话设置，最后返回用户ID
			// 用户的角色存储在用户表的acl字段中
			spClass('spAcl')->set($result['acl']); // 通过spAcl类的set方法，将当前会话角色设置成该用户的角色
			$_SESSION["userinfo"] = $result; // 在SESSION中记录当前用户的信息
			return true;
		}else{
			// 找不到匹配记录，用户名或密码错误，返回false
			return false;
		}
	}
	/**
	 * 无权限提示及跳转
	 */
	public function acljump(){ 
		// 这里直接“借用”了spController.php的代码来进行无权限提示
		$url = spUrl("main","login");
		echo "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"><script>function sptips(){alert(\"您没有权限进行此操作，请登录！\");location.href=\"{$url}\";}</script></head><body onload=\"sptips()\"></body></html>";
		exit;
	}
}